
package BUFE;

import DTL.*;
import java.util.*;

/**
 * 
 * Classe destinée à gérer le panier
 */
public class PanierManager {

    /**
     * Méthode destinée à ajouter un produit dans le panier
     * @param unPanier définit le panier auquel ajouter l'élément
     * @param unProduit définit le produit à ajouter au panier
     * @param quantite définit la quantité du produit à ajouter au panier
     */
    public static void addProduit(List<Panier_Entite> unPanier, Produit_Entite unProduit, int quantite) {
        Panier_Entite unAjout = new Panier_Entite(unProduit, quantite);
        unPanier.add(unAjout);
    }

    /**
     * Méthode destinée à obtenir la liste des éléments contenus dans un panier
     * @param unPanier définit le panier auquel ajouter l'élément
     * @return un panier
     */
    public static List<Panier_Entite> getContenu(List<Panier_Entite> unPanier) {
        return unPanier;
    }

    /**
     * Méthode destinée à vider la liste des éléments contenus dans un panier
     * @param unPanier définit le panier à vider
     */
    public static void setEmpty(List<Panier_Entite> unPanier) {
        unPanier.clear();
    }

    /**
     * Méthode destinée à retirer un produit de la liste des éléments contenus dans un panier
     * @param unPanier définit le panier duquel retirer l'élément
     * @param unElement définit l'élément à retirer du panier
     */
    public static void removeProduit(List<Panier_Entite> unPanier, Panier_Entite unElement) {
        unPanier.remove(unElement);
    }
    
    /**
     * Méthode destinée à changer la quantité d'un produit déjà contenu dans un panier
     * @param unPanier définit le panier à altérer
     * @param unProduit définit le produit duquel changer la quantité
     * @param quantite définit la nouvelle quantité à affecter au produit
     */
    public static void changeQuantite (List<Panier_Entite> unPanier, Panier_Entite unProduit, int quantite)
    {
        unPanier.get(unPanier.indexOf(unProduit)).setQuantite(quantite);
    }

}
